﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ED_Nivelacion.Datos;

namespace ED_Nivelacion.Negocios
{
    public class DistribucionJornada_C
    {
        ED_NivelacionEntities _objEntity = new ED_NivelacionEntities();

        public List<DistribucionJornada> ObtenerDJornada()
        {
            List<DistribucionJornada> ListaDJornada = new List<DistribucionJornada>();
            try
            {
                foreach (var item in _objEntity.SP_ConsultarDistribucion_Jornada())
                {
                    ListaDJornada.Add(new DistribucionJornada { idDistribucion_Jornada = item.idDistribucion_Jornada, idJornada = item.idJornada, idPeriodo = item.idPeriodo, idTutor = item.idTutor });
                }

                return ListaDJornada;
            }
            catch (Exception)
            {
                return ListaDJornada;
            }
        }

        public string AgregarDJornada(DistribucionJornada _obj)
        {
            string msm = "OK";
            var NJornada = _objEntity.SP_ConsultarJornada();
            var Tutoria = _objEntity.SP_ObtenerTutoria();
            var tutor = _objEntity.SP_ObtenerTutoria().Where(c => c.idTutor == _obj.idTutor);
            var Jornada = _objEntity.SP_ObtenerTutoria().Where(c => c.idJornada == _obj.idJornada);
 
            try
            {
                if (Tutoria.Count() < NJornada.Count())
                {
                    if (tutor.Count() > 0)
                    {
                        msm = "El Docente seleccionado ya cuenta con tutorias";
                    }
                    else if (Jornada.Count() > 0)
                    {
                        msm = "Ya existen tutorias asignadas a la jornada seleccionada";
                    }
                    else
                    {
                        _objEntity.SP_InsertarDistribucion_Jornada(_obj.idTutor, _obj.idJornada, _obj.idPeriodo);
                    }
                }
                else
                {
                    msm = "Ya existen asignacion de tutorias en el actual Periodo";
                }
                
            }
            catch (Exception)
            {

                msm = "Error al Ingresar";
            }

            return msm;

        }

        public string EditarDJornada(DistribucionJornada _obj)
        {
            string msm = "OK";
            try
            {
                _objEntity.SP_ActualizarDistribucion_Jornada(_obj.idDistribucion_Jornada, _obj.idJornada, _obj.idPeriodo, _obj.idTutor);
            }
            catch (Exception)
            {

                msm = "Error al Actualizar";
            }

            return msm;
        }

        public string EliminarDJornada(int _idDistribucionJornada)
        {
            string msm = "OK";
            try
            {
                _objEntity.SP_EliminarDistribucion_Jornada(_idDistribucionJornada);
            }
            catch (Exception)
            {

                msm = "Error al eliminar";
            }

            return msm;
        }
    }
}
